Eclipse Platform
Pre-release 3.0

org.eclipse.team.ui.synchronize
Class AbstractSynchronizeParticipant

java.lang.Object
  extended byorg.eclipse.team.ui.synchronize.AbstractSynchronizeParticipant
All Implemented Interfaces:
IExecutableExtension, ISynchronizeParticipant
Direct Known Subclasses:
TeamSubscriberParticipant

public abstract class AbstractSynchronizeParticipant
extends Object
implements ISynchronizeParticipant

AbstractSynchronizeParticipant is the abstract base class for all synchronize view participants. It provides default lifecycle support for participants.

Since:
3.0
See Also:
ISynchronizeParticipant

Field Summary
protected  IConfigurationElement configElement
           
 
Constructor Summary
AbstractSynchronizeParticipant()
           
 
Method Summary
 void addPropertyChangeListener(IPropertyChangeListener listener)
          Adds a listener for changes to properties of this synchronize participant.
 void firePropertyChange(Object source, String property, Object oldValue, Object newValue)
          Notify all listeners that the given property has changed.
 String getId()
          Returns the unique id that identified the type of this synchronize participant.
 ImageDescriptor getImageDescriptor()
          Returns an image descriptor for this synchronize participant, or null if none.
 String getName()
          Returns the name of this synchronize participant.
 void init(IMemento memento)
          Initializes this participant with the given participant state.
 void removePropertyChangeListener(IPropertyChangeListener listener)
          Removes the given property listener from this synchronize participant.
 void saveState(IMemento memento)
          Saves the participants object state within the memento.
protected  void setImageDescriptor(ImageDescriptor imageDescriptor)
          Sets the image descriptor for this console to the specified value and notifies property listeners of the change.
 void setInitializationData(IConfigurationElement config, String propertyName, Object data)
          This method is called by the implementation of the method IConfigurationElement.createExecutableExtension on a newly constructed extension, passing it its relevant configuration information.
protected  void setInitializationData(ISynchronizeParticipantDescriptor descriptor)
           
protected  void setName(String name)
          Sets the name of this console to the specified value and notifies property listeners of the change.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.team.ui.synchronize.ISynchronizeParticipant
createPage, dispose
 

Field Detail

configElement

protected IConfigurationElement configElement
Constructor Detail

AbstractSynchronizeParticipant

public AbstractSynchronizeParticipant()
Method Detail

getName

public String getName()
Description copied from interface: ISynchronizeParticipant
Returns the name of this synchronize participant.

Specified by:
getName in interface ISynchronizeParticipant
Returns:
the name of this synchronize participant

getImageDescriptor

public ImageDescriptor getImageDescriptor()
Description copied from interface: ISynchronizeParticipant
Returns an image descriptor for this synchronize participant, or null if none.

Specified by:
getImageDescriptor in interface ISynchronizeParticipant
Returns:
an image descriptor for this synchronize participant, or null if none

getId

public String getId()
Description copied from interface: ISynchronizeParticipant
Returns the unique id that identified the type of this synchronize participant. The synchronize manager supports registering several instances of the same participant type.

Specified by:
getId in interface ISynchronizeParticipant
Returns:
the unique id that identified the type of this synchronize participant.

addPropertyChangeListener

public void addPropertyChangeListener(IPropertyChangeListener listener)
Description copied from interface: ISynchronizeParticipant
Adds a listener for changes to properties of this synchronize participant. Has no effect if an identical listener is already registered.

The changes supported by the synchronize view are as follows:

Clients may define additional properties as required.

Specified by:
addPropertyChangeListener in interface ISynchronizeParticipant
Parameters:
listener - a property change listener

removePropertyChangeListener

public void removePropertyChangeListener(IPropertyChangeListener listener)
Description copied from interface: ISynchronizeParticipant
Removes the given property listener from this synchronize participant. Has no effect if an identical listener is not alread registered.

Specified by:
removePropertyChangeListener in interface ISynchronizeParticipant
Parameters:
listener - a property listener

firePropertyChange

public void firePropertyChange(Object source,
                               String property,
                               Object oldValue,
                               Object newValue)
Notify all listeners that the given property has changed.

Parameters:
source - the object on which a property has changed
property - identifier of the property that has changed
oldValue - the old value of the property, or null
newValue - the new value of the property, or null

setInitializationData

public void setInitializationData(IConfigurationElement config,
                                  String propertyName,
                                  Object data)
                           throws CoreException
Description copied from interface: IExecutableExtension
This method is called by the implementation of the method IConfigurationElement.createExecutableExtension on a newly constructed extension, passing it its relevant configuration information. Most executable extensions only make use of the first two call arguments.

Regular executable extensions specify their Java implementation class name as an attribute of the configuration element for the extension. For example

     <action run="com.example.BaseAction"/>
 
In the above example, this method would be called with a reference to the <action> element (first argument), and "run" as the name of the attribute that defined this executable extension (second argument).

The last parameter is for the specific use of extension adapters and is typically not used by regular executable extensions.

There are two supported ways of associating additional adapter-specific data with the configuration in a way that is transparent to the extension point implementor:

(1) by specifying adapter data as part of the implementation class attribute value. The Java class name can be followed by a ":" separator, followed by any adapter data in string form. For example, if the extension point specifies an attribute "run" to contain the name of the extension implementation, an adapter can be configured as

     <action run="com.example.ExternalAdapter:./cmds/util.exe -opt 3"/>
 

(2) by converting the attribute used to specify the executable extension to a child element of the original configuration element, and specifying the adapter data in the form of xml markup. Using this form, the example above would become

     <action>
         <run class="com.xyz.ExternalAdapter">
             <parameter name="exec" value="./cmds/util.exe"/>
             <parameter name="opt"  value="3"/>
         </run>
     </action>
 

Form (2) will typically only be used for extension points that anticipate the majority of extensions configured into it will in fact be in the form of adapters.

In either case, the specified adapter class is instantiated using its 0-argument public constructor. The adapter data is passed as the last argument of this method. The data argument is defined as Object. It can have the following values:

Specified by:
setInitializationData in interface IExecutableExtension
Parameters:
config - the configuration element used to trigger this execution. It can be queried by the executable extension for specific configuration properties
propertyName - the name of an attribute of the configuration element used on the createExecutableExtension(String) call. This argument can be used in the cases where a single configuration element is used to define multiple executable extensions.
data - adapter data in the form of a String, a Hashtable, or null.
Throws:
CoreException - if error(s) detected during initialization processing
See Also:
IConfigurationElement.createExecutableExtension(java.lang.String)

setInitializationData

protected void setInitializationData(ISynchronizeParticipantDescriptor descriptor)
                              throws CoreException
Throws:
CoreException

setName

protected void setName(String name)
Sets the name of this console to the specified value and notifies property listeners of the change.

Parameters:
name - the new name

setImageDescriptor

protected void setImageDescriptor(ImageDescriptor imageDescriptor)
Sets the image descriptor for this console to the specified value and notifies property listeners of the change.

Parameters:
imageDescriptor - the new image descriptor

init

public void init(IMemento memento)
          throws PartInitException
Description copied from interface: ISynchronizeParticipant
Initializes this participant with the given participant state. A memento is passed to the participant which contains a snapshot of the participants state from a previous session.

This method is automatically called by the team plugin shortly after participant construction. It marks the start of the views's lifecycle. Clients must not call this method.

Specified by:
init in interface ISynchronizeParticipant
Parameters:
memento - the participant state or null if there is no previous saved state
Throws:
PartInitException - if this participant was not initialized successfully

saveState

public void saveState(IMemento memento)
Description copied from interface: ISynchronizeParticipant
Saves the participants object state within the memento. This state will be available when the participant is restored via init.

Specified by:
saveState in interface ISynchronizeParticipant
Parameters:
memento - a memento to receive the object state

Eclipse Platform
Pre-release 3.0

Copyright (c) IBM Corp. and others 2000, 2003. All Rights Reserved.